<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: cv::GCompiled Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../da/dc2/classcv_1_1GCompiled-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::GCompiled Class Reference<div class="ingroups"><a class="el" href="../../d7/d0d/group__gapi.html">G-API framework</a> &raquo; <a class="el" href="../../d8/dd0/group__gapi__main__classes.html">G-API Main Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions it was compiled for, with some exceptions.  
 <a href="../../d2/d2c/classcv_1_1GCompiled.html#details">More...</a></p>

<p><code>#include &lt;opencv2/gapi/gcompiled.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a758f7777bbd7e6a9c7d2570b4ab1efc2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#a758f7777bbd7e6a9c7d2570b4ab1efc2">GCompiled</a> ()</td></tr>
<tr class="memdesc:a758f7777bbd7e6a9c7d2570b4ab1efc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an empty object.  <a href="#a758f7777bbd7e6a9c7d2570b4ab1efc2">More...</a><br /></td></tr>
<tr class="separator:a758f7777bbd7e6a9c7d2570b4ab1efc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a772dd5e07d0b01894805d920c1f10c24"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#a772dd5e07d0b01894805d920c1f10c24">canReshape</a> () const</td></tr>
<tr class="memdesc:a772dd5e07d0b01894805d920c1f10c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the underlying backends support reshape or not.  <a href="#a772dd5e07d0b01894805d920c1f10c24">More...</a><br /></td></tr>
<tr class="separator:a772dd5e07d0b01894805d920c1f10c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae105107abedd589e94153a0e6f916367"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#ae105107abedd589e94153a0e6f916367">metas</a> () const</td></tr>
<tr class="memdesc:ae105107abedd589e94153a0e6f916367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector of metadata this graph was compiled for.  <a href="#ae105107abedd589e94153a0e6f916367">More...</a><br /></td></tr>
<tr class="separator:ae105107abedd589e94153a0e6f916367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4258c9421f5dd3926779ac7a67051f92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#a4258c9421f5dd3926779ac7a67051f92">operator bool</a> () const</td></tr>
<tr class="memdesc:a4258c9421f5dd3926779ac7a67051f92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if compiled object is valid (non-empty)  <a href="#a4258c9421f5dd3926779ac7a67051f92">More...</a><br /></td></tr>
<tr class="separator:a4258c9421f5dd3926779ac7a67051f92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2ed48a66be94fae14bc3a2a08ea8e95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#ad2ed48a66be94fae14bc3a2a08ea8e95">operator()</a> (<a class="el" href="../../d2/d75/namespacecv.html#a3d9c032e5fe7892151570efc6ac08e51">GRunArgs</a> &amp;&amp;ins, <a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">GRunArgsP</a> &amp;&amp;outs)</td></tr>
<tr class="memdesc:ad2ed48a66be94fae14bc3a2a08ea8e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run the compiled computation, a generic version.  <a href="#ad2ed48a66be94fae14bc3a2a08ea8e95">More...</a><br /></td></tr>
<tr class="separator:ad2ed48a66be94fae14bc3a2a08ea8e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ada1c617461a8b366b997be5c438d4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#a8ada1c617461a8b366b997be5c438d4a">operator()</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;out)</td></tr>
<tr class="memdesc:a8ada1c617461a8b366b997be5c438d4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute an unary computation.  <a href="#a8ada1c617461a8b366b997be5c438d4a">More...</a><br /></td></tr>
<tr class="separator:a8ada1c617461a8b366b997be5c438d4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68bcf146b1479be128ee4bb39035fc43"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#a68bcf146b1479be128ee4bb39035fc43">operator()</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in, <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp;out)</td></tr>
<tr class="memdesc:a68bcf146b1479be128ee4bb39035fc43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute an unary computation.  <a href="#a68bcf146b1479be128ee4bb39035fc43">More...</a><br /></td></tr>
<tr class="separator:a68bcf146b1479be128ee4bb39035fc43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7878a8cf7a6e5f5542777c8e1b5c977a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#a7878a8cf7a6e5f5542777c8e1b5c977a">operator()</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in1, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in2, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;out)</td></tr>
<tr class="memdesc:a7878a8cf7a6e5f5542777c8e1b5c977a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute a binary computation.  <a href="#a7878a8cf7a6e5f5542777c8e1b5c977a">More...</a><br /></td></tr>
<tr class="separator:a7878a8cf7a6e5f5542777c8e1b5c977a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7ea0e242325db157f9dc95cf2c47845"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#ac7ea0e242325db157f9dc95cf2c47845">operator()</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in1, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in2, <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp;out)</td></tr>
<tr class="memdesc:ac7ea0e242325db157f9dc95cf2c47845"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute an binary computation.  <a href="#ac7ea0e242325db157f9dc95cf2c47845">More...</a><br /></td></tr>
<tr class="separator:ac7ea0e242325db157f9dc95cf2c47845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4751e20cd8fa27947b073366d3c130c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#aa4751e20cd8fa27947b073366d3c130c">operator()</a> (const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp;ins, const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp;outs)</td></tr>
<tr class="memdesc:aa4751e20cd8fa27947b073366d3c130c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute a computation with arbitrary number of inputs/outputs.  <a href="#aa4751e20cd8fa27947b073366d3c130c">More...</a><br /></td></tr>
<tr class="separator:aa4751e20cd8fa27947b073366d3c130c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb1e2c45cc469afe7aa98d5500aac1a4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#adb1e2c45cc469afe7aa98d5500aac1a4">outMetas</a> () const</td></tr>
<tr class="memdesc:adb1e2c45cc469afe7aa98d5500aac1a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector of metadata descriptions of graph outputs.  <a href="#adb1e2c45cc469afe7aa98d5500aac1a4">More...</a><br /></td></tr>
<tr class="separator:adb1e2c45cc469afe7aa98d5500aac1a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3f7a54ed698a86ca6c63b4351eddb20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#ab3f7a54ed698a86ca6c63b4351eddb20">prepareForNewStream</a> ()</td></tr>
<tr class="memdesc:ab3f7a54ed698a86ca6c63b4351eddb20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare inner kernels states for a new video-stream.  <a href="#ab3f7a54ed698a86ca6c63b4351eddb20">More...</a><br /></td></tr>
<tr class="separator:ab3f7a54ed698a86ca6c63b4351eddb20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51d8dbce56c9804e6eb9440c811ba44"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#ae51d8dbce56c9804e6eb9440c811ba44">reshape</a> (const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;inMetas, const <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;args)</td></tr>
<tr class="memdesc:ae51d8dbce56c9804e6eb9440c811ba44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reshape a compiled graph to support new image resolutions.  <a href="#ae51d8dbce56c9804e6eb9440c811ba44">More...</a><br /></td></tr>
<tr class="separator:ae51d8dbce56c9804e6eb9440c811ba44"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions it was compiled for, with some exceptions. </p>
<p>This class represents a product of graph compilation (calling <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8" title="Compile the computation for specific input format(s). ">cv::GComputation::compile()</a>). Objects of this class actually do data processing, and graph execution is incapsulated into objects of this class. Execution model itself depends on kernels and backends which were using during the compilation, see <a class="el" href="../../d9/d29/group__gapi__compile__args.html">G-API Graph Compilation Arguments</a> for details.</p>
<p>In a general case, <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> objects can be applied to data only in that formats/resolutions they were compiled for (see <a class="el" href="../../d3/d0c/group__gapi__meta__args.html">G-API Metadata Descriptors</a>). However, if the underlying backends allow, a compiled object can be <em>reshaped</em> to handle data (images) of different resolution, though formats and types must remain the same.</p>
<p><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> is very similar to <code>std::function&lt;&gt;</code> in its semantics &ndash; running it looks like a function call in the user code.</p>
<p>At the moment, <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> objects are not reentrant &ndash; generally, the objects are stateful since graph execution itself is a stateful process and this state is now maintained in <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>'s own memory (not on the process stack).</p>
<p>At the same time, two different <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> objects produced from the single <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> are completely independent and can be used concurrently.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a758f7777bbd7e6a9c7d2570b4ab1efc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a758f7777bbd7e6a9c7d2570b4ab1efc2">&#9670;&nbsp;</a></span>GCompiled()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::GCompiled::GCompiled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs an empty object. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a772dd5e07d0b01894805d920c1f10c24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a772dd5e07d0b01894805d920c1f10c24">&#9670;&nbsp;</a></span>canReshape()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::GCompiled::canReshape </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if the underlying backends support reshape or not. </p>
<dl class="section return"><dt>Returns</dt><dd>true if supported, false otherwise. </dd></dl>

</div>
</div>
<a id="ae105107abedd589e94153a0e6f916367"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae105107abedd589e94153a0e6f916367">&#9670;&nbsp;</a></span>metas()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a>&amp; cv::GCompiled::metas </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vector of metadata this graph was compiled for. </p>
<dl class="section return"><dt>Returns</dt><dd>Unless <em>reshape</em> is not supported, return value is the same vector which was passed to <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8" title="Compile the computation for specific input format(s). ">cv::GComputation::compile()</a> to produce this compiled object. Otherwise, it is the latest metadata vector passed to <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html#ae51d8dbce56c9804e6eb9440c811ba44" title="Reshape a compiled graph to support new image resolutions. ">reshape()</a> (if that call was successful). </dd></dl>

</div>
</div>
<a id="a4258c9421f5dd3926779ac7a67051f92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4258c9421f5dd3926779ac7a67051f92">&#9670;&nbsp;</a></span>operator bool()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::GCompiled::operator bool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if compiled object is valid (non-empty) </p>
<dl class="section return"><dt>Returns</dt><dd>true if the object is runnable (valid), false otherwise </dd></dl>

</div>
</div>
<a id="ad2ed48a66be94fae14bc3a2a08ea8e95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2ed48a66be94fae14bc3a2a08ea8e95">&#9670;&nbsp;</a></span>operator()() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::operator() </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a3d9c032e5fe7892151570efc6ac08e51">GRunArgs</a> &amp;&amp;&#160;</td>
          <td class="paramname"><em>ins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">GRunArgsP</a> &amp;&amp;&#160;</td>
          <td class="paramname"><em>outs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Run the compiled computation, a generic version. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>vector of inputs to process. </td></tr>
    <tr><td class="paramname">outs</td><td>vector of outputs to produce.</td></tr>
  </table>
  </dd>
</dl>
<p>Input/output vectors must have the same number of elements as defined in the <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> protocol (at the moment of its construction). Shapes of elements also must conform to protocol (e.g. <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> needs to be passed where <a class="el" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> has been declared as input, and so on). Run-time exception is generated otherwise.</p>
<p>Objects in output vector may remain empty (like <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a>) &ndash; G-API will automatically initialize output objects to proper formats.</p>
<dl class="section note"><dt>Note</dt><dd>Don't construct GRunArgs/GRunArgsP objects manually, use <a class="el" href="../../d2/d75/namespacecv.html#a4941eb8cbe70b8c7187bc8459af7653b">cv::gin()</a>/cv<a class="el" href="../../d2/d75/namespacecv.html#ac82b8a261b82157293b603b55c096a9e">gout()</a> wrappers instead. </dd></dl>

</div>
</div>
<a id="a8ada1c617461a8b366b997be5c438d4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ada1c617461a8b366b997be5c438d4a">&#9670;&nbsp;</a></span>operator()() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::operator() </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute an unary computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for unary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for unary computation process. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a68bcf146b1479be128ee4bb39035fc43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68bcf146b1479be128ee4bb39035fc43">&#9670;&nbsp;</a></span>operator()() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::operator() </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute an unary computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for unary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> for unary computation process. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7878a8cf7a6e5f5542777c8e1b5c977a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7878a8cf7a6e5f5542777c8e1b5c977a">&#9670;&nbsp;</a></span>operator()() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::operator() </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td>
          <td class="paramname"><em>in1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td>
          <td class="paramname"><em>in2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute a binary computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in1</td><td>first input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">in2</td><td>second input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation process. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac7ea0e242325db157f9dc95cf2c47845"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7ea0e242325db157f9dc95cf2c47845">&#9670;&nbsp;</a></span>operator()() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::operator() </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td>
          <td class="paramname"><em>in1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td>
          <td class="paramname"><em>in2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute an binary computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in1</td><td>first input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">in2</td><td>second input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> for binary computation process. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa4751e20cd8fa27947b073366d3c130c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4751e20cd8fa27947b073366d3c130c">&#9670;&nbsp;</a></span>operator()() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::operator() </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>outs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute a computation with arbitrary number of inputs/outputs. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>vector of input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> objects to process by the computation. </td></tr>
    <tr><td class="paramname">outs</td><td>vector of output <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> objects to produce by the computation.</td></tr>
  </table>
  </dd>
</dl>
<p>Numbers of elements in ins/outs vectors must match numbers of inputs/outputs which were used to define the source <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a>. </p>

</div>
</div>
<a id="adb1e2c45cc469afe7aa98d5500aac1a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb1e2c45cc469afe7aa98d5500aac1a4">&#9670;&nbsp;</a></span>outMetas()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a>&amp; cv::GCompiled::outMetas </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vector of metadata descriptions of graph outputs. </p>
<dl class="section return"><dt>Returns</dt><dd>vector with formats/resolutions of graph's output objects, auto-inferred from input metadata vector by operations which form this computation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> objects produced from the same cv::GComputiation graph with different input metas may return different values in this vector. </dd></dl>

</div>
</div>
<a id="ab3f7a54ed698a86ca6c63b4351eddb20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3f7a54ed698a86ca6c63b4351eddb20">&#9670;&nbsp;</a></span>prepareForNewStream()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::prepareForNewStream </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prepare inner kernels states for a new video-stream. </p>
<p><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> objects may be used to process video streams frame by frame. In this case, a <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> is called on every image frame individually. Starting OpenCV 4.4, some kernels in the graph may have their internal states (see GAPI_OCV_KERNEL_ST for the OpenCV backend). In this case, if user starts processing another video stream with this <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>, this method needs to be called to let kernels re-initialize their internal states to a new video stream. </p>

</div>
</div>
<a id="ae51d8dbce56c9804e6eb9440c811ba44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae51d8dbce56c9804e6eb9440c811ba44">&#9670;&nbsp;</a></span>reshape()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GCompiled::reshape </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&#160;</td>
          <td class="paramname"><em>inMetas</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reshape a compiled graph to support new image resolutions. </p>
<p>Throws an exception if an error occurs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">inMetas</td><td>new metadata to reshape on. Vector size and metadata shapes must match the computation's protocol. </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments to use. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/gapi/<a class="el" href="../../d9/dca/gcompiled_8hpp.html">gcompiled.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:42 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
